def-symbol describes the symbols used by individual instruments. Def-description consists of instrument name and value. If the value is a quoted list, it is associated directly with the instrument name, otherwise the evaluated value is used.
This function is used with def-length to define symbols for individual instruments. If you use def-rhythm then you may not need this function.
(setq values '(e f g (-1 h)))
(def-symbol
bass '(a b c d)
drum (pick-drum ("club:house" 0.4 a b a c))
fill (fill-template
(filter-midpass 'a 'b
(pick-drum ("club:strange" 0.4 a b))) 'a)
perc (list values)
)
Nested Lists
The length, velocity and symbol forms can be one of the following:
• a value like 1/16, 64 and a
• a single list (e0 e1 e2... en)
• a nested list ((e0 e1 e2... en))
• a list of lists ((e00 e01 e02... e0n) (e10 e11 e12... e1n) ... (en0 en1 en2... enn)).
The difference between them is that:
• the value is repeated over and over
• the single list is repeated when all of its values are used
• the nested list is restarted at the beginning of every zone
• the list of lists describes the values for each zone. These values are repeated continuously inside the zone. If there are more zones than lists defined then the whole listof lists is restarted.
Note that you must quote these forms if you are writing them manually. If the values are returned by a function the output can be used directly.
When using multiple zones use nil to represent an empty symbol pattern for that zone, for example:
((a b c) nil (c d e))
This will create an empty zone in cases the zone actually is a positive length symbol.
The instrument can be a single instrument, or instrument group defined with def-orchestra. The properties are inherited to all sub-groups and instruments of the group.